﻿namespace UIOC.Observable.CodeAnalysis;

public static class AttributeFullNames {
}

public static class NamespaceFullNames {
    public const string Attributes = $"{NamespaceNames.UIOC}.{NamespaceNames.Observable}.{NamespaceNames.Attributes}";
    public const string Observable = $"{NamespaceNames.UIOC}.{NamespaceNames.Observable}";
}

public static class NamespaceNames {
    public const string Internal = nameof(Internal);
    public const string UIOC = nameof(UIOC);
    public const string Observable = nameof(Observable);
    public const string Attributes = nameof(Attributes);
}

public static class TypeFullNames {
    public const string Model = $"{NamespaceNames.UIOC}.{NamespaceNames.Observable}.{TypeNames.Model}";
    public const string IObservableModel = $"{NamespaceNames.UIOC}.{NamespaceNames.Observable}.{TypeNames.IObservableModel}";
    //public const string IModelInternal = $"{NamespaceNames.Internal}.{NamespaceNames.UIOC}.{NamespaceNames.Observable}.{TypeNames.IModelInternal}";
    public const string IObservableObject = $"{NamespaceNames.UIOC}.{NamespaceNames.Observable}.{TypeNames.IObservableObject}";
    public const string IObject = $"{NamespaceNames.UIOC}.{NamespaceNames.Observable}.{TypeNames.IObject}";
}

public static class TypeNames {
    public const string Model = nameof(Model);
    public const string IObservableModel = nameof(IObservableModel);
    //public const string IModelInternal = nameof(IModelInternal);
    public const string IObservableObject = nameof(IObservableObject);
    public const string IObject = nameof(IObject);
}

public static class MemberNames {

    //public static class IModelInternal {
    //    public const string Allocate = nameof(Allocate);
    //}

    public static class Model {
        public const string Allocate = nameof(Allocate);
        public const string Release = nameof(Release);
    }

    public static class IObservableObject {
        public const string Changed = nameof(Changed);
        public const string NotifyChanged = nameof(NotifyChanged);
    }
}